JENNIFER LAWRENCE

#Montando dataset
import_data("jennifer_lawrence")
## Loading required package: rvest
## Loading required package: xml2
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:purrr':
## 
##     pluck
## The following object is masked from 'package:readr':
## 
##     guess_encoding
#Importando Dataset 
filmes = read_imported_data() %>% 
    glimpse()
## Observations: 18
## Variables: 5
## $ avaliacao  <int> 46, 69, 31, 47, 100, 60, 70, 68, 90, 92, 89, 92, 11, …
## $ filme      <chr> "Red Sparrow", "mother!", "Passengers", "X-Men: Apoca…
## $ papel      <chr> "Dominika Egorova", "Mother", "Aurora Lane", "Raven/M…
## $ bilheteria <dbl> 17.1, 17.3, 100.1, 135.8, 7.5, 42.6, 254.7, 295.5, 19…
## $ ano        <int> 2018, 2017, 2016, 2016, 2016, 2015, 2015, 2014, 2014,…

Jennifer Lawrence é uma atriz norte-america que nasceu em Louisville no estado do Kentucky. Nascida em 1990 (28 anos) a atriz já ganhou diversos prêmios, inclusive dois Orcars.

p <- plot_ly(filmes, x = ~ano, y = ~bilheteria,  type = 'pointcloud',
            text = ~paste('Filme: ', filme, "\nAvalicao: ", avaliacao, "\nBilheteria: ", bilheteria, "\nAno:", ano)) %>%
  layout(title = "Linha do tempo: Carreira da Jennifer",
         xaxis = list(title = "Avaliação", tickangle = -45),
         yaxis = list(title = "Bilheteria"))

p

Na visualização acima podemos ver que Jennifer começou sua carreira em 2010 com o filme Winter’s Bone. Suas melhores bilheterias foram com os filmes das sagas Jogos Vorazes e X-men.

Antes de realizar os agrupamentos precisamos normalizar os dados, irei normalizar bilheteria e avalição que são os dados mais discrepantes.

Foi utilizado o ‘log’ nos dados de bilheteria já que são valores bem diferentes e grandes.

filmes_transformado = filmes %>% 
    mutate(avaliacao = as.vector(scale(avaliacao)), 
            bilheteria = as.vector(scale(log(bilheteria))))

Vamos agora agrupar os filmes em que Jennifer apareceu:

Para começar iremos precisar descobrir em quantos grupos devemos realizar o agrumamento. Vamos calcular a estatistíca GAP que irá auxiliar na escolha.

plot_clusgap = function(clusgap, title = "Gap Statistic calculation results") {
    require("ggplot2")
    gstab = data.frame(clusgap$Tab, k = 1:nrow(clusgap$Tab))
    p = ggplot(gstab, aes(k, gap)) + geom_line() + geom_point(size = 5)
    p = p + geom_errorbar(aes(ymax = gap + SE.sim, ymin = gap - SE.sim), width = .2)
    p = p + ggtitle(title)
    return(p)
}
gaps <- filmes_transformado %>% 
    select(bilheteria, avaliacao) %>% 
    clusGap(FUN = kmeans, nstart = 20, K.max = 7, B = 200)

plot_clusgap(gaps)

Olhando o gráfico acima podemos perceber que o GAP esta propondo que o melhor valor para o agrupamento é 7 ou 3.

Agrupamento com 3 não parece ser muito expressivo. Os grupos parecem muito amplos

set.seed(12345)

n_clusters = 3
# O agrupamento de fato:
km = filmes_transformado %>% 
    select(bilheteria, avaliacao) %>% 
    kmeans(centers = n_clusters, nstart = 20)

agrupado = km %>% 
    augment(filmes_transformado)


agrupado %>% 
    ggplot(aes(x = avaliacao, y = bilheteria, color = .cluster))  + 
    geom_point(size = 2)

O agrupamento com 7 parece fazer mais sentido e parece melhor agrupar os filmes

set.seed(12345)

n_clusters = 7
# O agrupamento de fato:
km = filmes_transformado %>% 
    select(bilheteria, avaliacao) %>% 
    kmeans(centers = n_clusters, nstart = 20)

agrupado = km %>% 
    augment(filmes_transformado)

Cluster interativo, passe o mouse sobre os pontos para ver informações sobre o filme.

p <- plot_ly(agrupado, x = ~avaliacao, y = ~bilheteria, color=~.cluster,  type = 'pointcloud',
            text = ~paste('Filme: ', filme, "\nAvalicao: ", avaliacao, "\nBilheteria: ", bilheteria, "\nAno:", ano)) %>%
  layout(title = "Clusters",
         xaxis = list(title = "Avaliação", tickangle = -45),
         yaxis = list(title = "Bilheteria"))

p

Visualizando os grupos através de polígonos

ggscatter(agrupado, x="avaliacao", y="bilheteria", color=".cluster")+
    stat_chull(aes(fill = .cluster), alpha=0.3, geom="polygon")+
    xlab("Avaliação")+
    ylab("Bilheteria")

Investigando as características dos grupos.

1 - “Bilheteria mediana com péssima qualidade” - Este grupo é formado por apenas um filme. Este tem a pior avaliação dentre os filmes de Jennifer, tem uma nota 11 no Rotten Tomatoes.

2 - “Flops com um pouco de qualidade” - Aqui temos filmes que não fizeram tanto sucesso e tiveram baixa bilheteria, mas apresentam uma avaliação OK.

3 - “Auges de qualidade, porém um pouco flops” - Nesse grupo estão os filmes de melhor qualidade de Jennifer, mas não tiveram grande bilheteria. Um desses filmes rendeu a ela diversos prêmios, incluindo um Oscar.

4 - “Hits de maior qualidade da Jennifer” - Este grupo parace ser composto por filmes que tiveram grande bilheteria e boa avaliação. Entre eles estão 2 filmes da saga Jogo Vorazes e dois X-men. Os outros dois do grupo que apresentam menor bilheteria são filmes de drama, entre eles esta “Silver Linings Playbook” com o qual Jennifer ganhou um Orcar.

5 - “Os jogos vorazes não tão bons” - Aqui foram agrupados os dois primeiros filmes dos jogos vorazes. Possuem uma grande quantidade de bilheteria devido a característica de serem filmes inspirados em uma famosa saga de livros, porém a qualidade não é tão boa quanto o do grupo 4.

6 - “Hits de baixa qualidade” - Aqui temos os filmes que Jennifer fez que teve grande hype por isso os altos valores de bilheteria, porém as avaliações não foram tão positivas.

7 - “Neutros” - Aqui temos os filmes que não se tiveram valores chamativos nem de bilheteria nem de avaliação.